﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using Dados_;
using Dados_.ClassesDados;

namespace Negocios
{
    [DataObject]
    public class ProgramaBOMetodos
    {
        [DataObjectMethod(DataObjectMethodType.Insert, true)]
        public bool Insere(ProgramaBO eBO)
        {
            ProgramaSQL eSQL = new ProgramaSQL();
            ProgramaVO Pvo = new ProgramaVO();

            Pvo.Nome = eBO.Nome;
            Pvo.Tema = eBO.Tema;
            Pvo.Duracao = Convert.ToString(eBO.Duracao);
            Pvo.Sinopse = eBO.Sinopse;
            return (eSQL.Insere(Pvo) == 1);

        }
        [DataObjectMethod(DataObjectMethodType.Delete, true)]
        public bool Excluir(ProgramaBO eBO)
        {
            ProgramaSQL eSQL = new ProgramaSQL();
            ProgramaVO Pvo = new ProgramaVO();
            Pvo.Id = eBO.Id;
            return (eSQL.Excluir(eBO.Id) == 1);

        }
        [DataObjectMethod(DataObjectMethodType.Update, true)]
        public bool Atualizar(ProgramaBO eBO)
        {
            ProgramaSQL eSQL = new ProgramaSQL();
            ProgramaVO Pvo = new ProgramaVO();

            Pvo.Nome = eBO.Nome;
            Pvo.Tema = eBO.Tema;
            Pvo.Duracao = Convert.ToString(eBO.Duracao);
            Pvo.Sinopse = eBO.Sinopse;

            return (eSQL.Atualizar(Pvo) == 1);
        }
        [DataObjectMethod(DataObjectMethodType.Select, false)]
        public ProgramaBO Consultar(int id)
        {
            ProgramaSQL eSQl = new ProgramaSQL();
            ProgramaVO Pvo = eSQl.Consultar(id);
            ProgramaBO eBO = new ProgramaBO();
            eBO.Id = Pvo.Id;
            eBO.Nome = Pvo.Nome;
            eBO.Tema = Pvo.Tema;
            eBO.Duracao = Convert.ToDateTime(Pvo.Duracao);
            eBO.Sinopse = Pvo.Sinopse;

            return eBO;

        }

        [DataObjectMethod(DataObjectMethodType.Select, true)]
        public List<ProgramaBO> Consultar(String nome, int tematica)
        {
            ProgramaSQL eSQL = new ProgramaSQL();
            List<ProgramaVO> lPvo = eSQL.Consultar(nome, tematica);
            List<ProgramaBO> leBO = new List<ProgramaBO>();

            foreach (ProgramaVO Pvo in lPvo)
            {
                ProgramaBO eBO = new ProgramaBO();
                eBO.Id = Pvo.Id;
                eBO.Nome = Pvo.Nome;
                eBO.Tema = Pvo.Tema;
                eBO.Duracao = Convert.ToDateTime(Pvo.Duracao);
                eBO.Sinopse = Pvo.Sinopse;
                leBO.Add(eBO);
            }
            return leBO;

        }

    }
}